package com.party.core.service.dbAnalyze;

import com.party.common.paging.Page;
import com.party.core.model.dbAnalyze.DbAnalyze;
import com.party.core.model.dbAnalyze.DbFile;

import java.util.HashMap;
import java.util.List;

/**
 * 数据库统计
 * Created by wei.li
 *
 * @date 2017/8/3 0003
 * @time 10:28
 */
public interface IDbAnalyzeService {

    /**
     * 查询所有表名
     * @param page 分页参数
     * @return 表名列表
     */
    List<DbAnalyze> tables(DbAnalyze dbAnalyze, Page page);

    /**
     * 获取字段
     * @param table 表名
     * @return 文件
     */
    DbFile getDbFile(String table);

    /**
     * 是否存在字段
     * @param table 表名
     * @return 是否存在
     */
    boolean hasFile(String table);

    /**
     * 今天的统计
     * @param table 表名
     * @return 统计数
     */
    Integer todayCount(String table);

    /**
     * 本周记录
     * @param table 表名
     * @return 统计数
     */
    Integer weekCount(String table);

    /**
     * 本月统计
     * @param table 表名
     * @return 统计数
     */
    Integer monthCount(String table);

    /**
     * 统计数据
     * @param parameter 参数
     * @return 参数列表
     */
    List<HashMap<String, Integer>> countList(HashMap<String, Object> parameter);


    /**
     * 统计数据
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param table 参数列表
     * @return 统计数据
     */
    List<HashMap<String, Integer>> countList(String startTime, String endTime, String table);

}
